package com.tiancheng.trade.order.vo.open.order;

import com.tiancheng.trade.commom.web.model.response.PaymentPayWayQueryResponse;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

/**
 * 收银台响应结果数据
 *
 * @author kellen
 * @date 2024/11/25
 */
@Getter
@Setter
public class OpenCashierResVO {

    // 业务渠道
    private String orderSource;
    // 业务渠道类型
    private String type;
    // 订单列表，扩展支持多订单合并支付
    private List<Order> orders = new ArrayList<>();
    // 订单名称
    private String orderName;
    // 订单金额
    private BigDecimal orderAmount;
    // 支付金额
    private BigDecimal payAmount;
    // 支付过期时间（秒）
    private long payLeftTime;
    // 支付渠道类型（清分渠道、直连渠道、服务商渠道）
    private String payChannel;
    // 支付方式（微信、支付宝、银联）
    private List<PaymentPayWayQueryResponse> paymentWays;
    // 优惠券金额
    private BigDecimal discount;
    // 不需要支付,0-需要付款，1-不需要付款
    private int notPay;

    @Getter
    @Setter
    @AllArgsConstructor
    @NoArgsConstructor
    public static class Order {
        /**
         * 订单编号
         */
        private String orderId;
        /**
         * 订单名称
         */
        private String orderName;
        /**
         * 订单金额
         */
        private BigDecimal orderAmount;
        /**
         * 支付金额
         */
        private BigDecimal payAmount;
    }
}
